package com.example.ui.activitys;


import android.app.Activity;
import android.app.ActivityManager;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.widget.DrawerLayout;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageButton;

import com.bilibili.magicasakura.utils.ThemeUtils;
import com.example.ui.R;
import com.example.ui.dialog.CardPickerDialog;
import com.example.utils.ThemeHelper;

import butterknife.BindView;
import butterknife.ButterKnife;

/**
 * 创建时间 2017/9/28
 * 作者 fengxn
 * ----------Dragon be here!----------/
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃神兽保佑
 * 　　　　┃　　　┃代码无BUG！
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━神兽出没━━━━━━
 */

public class MainActivity extends BaseMainActivity implements CardPickerDialog.ClickListener
{

    @BindView(R.id.nav_view)
    NavigationView navView;
    @BindView(R.id.drawer_left)
    DrawerLayout drawerLeft;
    private ImageButton imageButton;
    private MenuItem menuItem;

    @Override
    protected int setLayoutId()
    {
        return R.layout.activity_main;
    }

    @Override
    protected void initVariables()
    {

    }

    @Override
    protected void initViews()
    {
        navView = (NavigationView) findViewById(R.id.nav_view);
        View headerView = navView.getHeaderView(0);
        imageButton = (ImageButton) headerView.findViewById(R.id.user_icon_nav_header);
        Menu menu = navView.getMenu();
        menuItem = menu.findItem(R.id.nav_skin);
    }

    @Override
    protected void initEvents()
    {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
        {
            WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
            localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
        }
        menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener()
        {
            @Override
            public boolean onMenuItemClick(MenuItem item)
            {
                CardPickerDialog dialog = new CardPickerDialog();
                dialog.setClickListener(MainActivity.this);
                dialog.show(getSupportFragmentManager(), CardPickerDialog.TAG);
                return true;
            }
        });
        imageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                startActivity(new Intent(MainActivity.this,UserLoginActivity.class));
            }
        });
    }


    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        ButterKnife.bind(this);
    }

    @Override
    public void onConfirm(int currentTheme)
    {
        if (ThemeHelper.getTheme(MainActivity.this) != currentTheme)
        {
            ThemeHelper.setTheme(MainActivity.this, currentTheme);
            ThemeUtils.refreshUI(MainActivity.this, new ThemeUtils.ExtraRefreshable()
                    {
                        @Override
                        public void refreshGlobal(Activity activity)
                        {
                            if (Build.VERSION.SDK_INT >= 21)
                            {
                                final MainActivity context = MainActivity.this;
                                ActivityManager.TaskDescription taskDescription =
                                        new ActivityManager.TaskDescription(null, null,
                                                ThemeUtils.getThemeAttrColor(context, android.R.attr.colorPrimary));
                                setTaskDescription(taskDescription);
                                getWindow().setStatusBarColor(
                                        ThemeUtils.getColorById(context, R.color.theme_color_primary_dark));
                            }
                        }

                        @Override
                        public void refreshSpecificView(View view)
                        {
                        }
                    }
            );

        }
    }
}
